part of 'use_case.dart';

sealed class PurchasedItemRestorationFailure {}

class ServerPurchasedItemRestorationFailure extends Equatable
    implements PurchasedItemRestorationFailure {
  const ServerPurchasedItemRestorationFailure();

  @override
  List<Object?> get props => [];
}

class NetworkPurchasedItemRestorationFailure extends Equatable
    implements PurchasedItemRestorationFailure {
  const NetworkPurchasedItemRestorationFailure();

  @override
  List<Object?> get props => [];
}

class UnauthorizedPurchasedItemRestorationFailure extends Equatable
    implements PurchasedItemRestorationFailure {
  const UnauthorizedPurchasedItemRestorationFailure({
    required this.user,
    required this.accessCredentials,
  });

  final User? user;
  final AccessCredentials? accessCredentials;

  @override
  List<Object?> get props {
    return [
      user,
      accessCredentials,
    ];
  }
}
